package com.woniuxy.rms.dao;

import com.woniuxy.rms.pojo.Users;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UsersMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Users record);

    int insertSelective(Users record);

    Users selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(Users record);

    int updateByPrimaryKey(Users record);
    /**
     * Description : 获取小区用户列表  <br/>
     * ChangeLog : 1. 创建 (2020/3/29 0029 下午 8:50 [Administrator]);
     * @param currentPage
     * @param pageSize
     * @param plotId
     * @return com.woniuxy.rms.util.DataResult
     */
    @Select("select Users.*,roles.role from Users left join roles on Users.role_id = roles.id where plot_id = #{plotId}")
    List<Users> findByPlotId(@Param("currentPage") Integer currentPage,
                             @Param("pageSize") Integer pageSize,@Param("plotId") Integer plotId);

    /**
     * Description : 查询当天新增用户数量  <br/>
     * ChangeLog : 1. 创建 (2020/4/2 0002 上午 11:22 [Administrator]);
     *
     * @return java.lang.Integer
     */
    @Select("select count(id) from Users where to_days(create_time) = to_days(now())")
    Integer findByToDay();
    /**
     * Description : 查询昨天新增用户数量  <br/>
     * ChangeLog : 1. 创建 (2020/4/2 0002 上午 11:22 [Administrator]);
     *
     * @return java.lang.Integer
     */
    @Select("select count(id) from Users where to_days(now()) - to_days(create_time) = 1 ")
    Integer findByYesterday();
    /**
     * Description : 查询本周新增用户数量  <br/>
     * ChangeLog : 1. 创建 (2020/4/2 0002 上午 11:22 [Administrator]);
     *
     * @return java.lang.Integer
     */
    @Select("select count(id) from Users where YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now())")
    Integer findByWeek();
    /**
     * Description : 查询本月新增用户数量  <br/>
     * ChangeLog : 1. 创建 (2020/4/2 0002 上午 11:22 [Administrator]);
     *
     * @return java.lang.Integer
     */
    @Select("select count(id) from Users where date_format(create_time,'%Y-%m') = date_format(now(),'%Y-%m')")
    Integer findByMonth();
    /**
     * Description : 查询所有用户数量  <br/>
     * ChangeLog : 1. 创建 (2020/4/2 0002 上午 11:22 [Administrator]);
     *
     * @return java.lang.Integer
     */
    @Select("select count(id) from Users")
    Long findByAllCount();

}